home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / mint / l_1599 / 1289 < prev    next >
Encoding:
Internet Message Format  |  1994-08-27  |  2.4 KB

  1. From: Julian Reschke <reschke@GOEDEL.UNI-MUENSTER.DE>
  2. Subject: Dxreaddir (2/2)
  3. Date: Mon, 25 Apr 94 12:36:10 MET DST
  4.  
  5. diff -c ..\mint/dos.c ./dos.c
  6. *** ..\mint/dos.c    Fri Feb 11 10:34:28 1994
  7. --- ./dos.c    Sun Apr 24 22:27:32 1994
  8. ***************
  9. *** 8,14 ****
  10.   
  11.   #include "mint.h"
  12.   
  13. ! #define DOS_MAX 0x140
  14.   
  15.   Func dos_tab[DOS_MAX];
  16.   short dos_max = DOS_MAX;
  17. --- 8,14 ----
  18.   
  19.   #include "mint.h"
  20.   
  21. ! #define DOS_MAX 0x150
  22.   
  23.   Func dos_tab[DOS_MAX];
  24.   short dos_max = DOS_MAX;
  25. ***************
  26. *** 602,605 ****
  27. --- 602,606 ----
  28.       dos_tab[0x13b] = d_getcwd;
  29.       dos_tab[0x13c] = s_alert;
  30.       dos_tab[0x13d] = t_malarm;
  31. +     dos_tab[0x142] = d_xreaddir;
  32.   }
  33. diff -c ..\mint/dosdir.c ./dosdir.c
  34. *** ..\mint/dosdir.c    Fri Feb 11 10:27:00 1994
  35. --- ./dosdir.c    Sun Apr 24 22:50:12 1994
  36. ***************
  37. *** 959,965 ****
  38. --- 959,993 ----
  39.       return r;
  40.   }
  41.   
  42. + /* jr: just as d_readdir, but also returns XATTR structure (not
  43. +    following links). Note that the return value reflects the
  44. +    result of the Dreaddir operation, the result of the Fxattr
  45. +    operation is stored in long *xret */
  46.   long ARGS_ON_STACK
  47. + d_xreaddir(len, handle, buf, xattr, xret)
  48. +     int len;
  49. +     long handle;
  50. +     char *buf;
  51. +     XATTR *xattr;
  52. +     long *xret;
  53. + {
  54. +     DIR *dirh = (DIR *)handle;
  55. +     fcookie fc;
  56. +     long r;
  57. +     if (!dirh->fc.fs) return EIHNDL;
  58. +     r = (*dirh->fc.fs->readdir)(dirh, buf, len, &fc);
  59. +     if (r != E_OK) return r;
  60. +     *xret = (*fc.fs->getxattr)(&fc, xattr);
  61. +     
  62. +     release_cookie(&fc);
  63. +     return r;
  64. + }
  65. + long ARGS_ON_STACK
  66.   d_rewind(handle)
  67.       long handle;
  68.   {
  69. diff -c ..\mint/proto.h ./proto.h
  70. *** ..\mint/proto.h    Fri Feb 11 10:35:00 1994
  71. --- ./proto.h    Sun Apr 24 22:27:50 1994
  72. ***************
  73. *** 109,114 ****
  74. --- 109,115 ----
  75.   long ARGS_ON_STACK d_pathconf P_((const char *name, int which));
  76.   long ARGS_ON_STACK d_opendir P_((const char *path, int flags));
  77.   long ARGS_ON_STACK d_readdir P_((int len, long handle, char *buf));
  78. + long ARGS_ON_STACK d_xreaddir P_((int len, long handle, char *buf, XATTR *xattr, long *xret));
  79.   long ARGS_ON_STACK d_rewind P_((long handle));
  80.   long ARGS_ON_STACK d_closedir P_((long handle));
  81.   long ARGS_ON_STACK f_xattr P_((int flag, const char *name, XATTR *xattr));
  82.  
  83. -- 
  84. ---------------------------------------------------
  85. Julian F. Reschke, Hensenstr. 142, D-48161 Muenster
  86.  eMail: reschke@math.uni-muenster.de jr@ms.maus.de
  87. ___________________________________________________
  88.